package charpter01_basic.lession01_create_thread;

import org.junit.Test;

/**
 * 众多资料中都说创建线程的方式有两种，本质上他们都是一样的，都是构建Thread类的实例， 而Thread类又实现了Runnable接口
 * 也可以说两种方法其实都是实现了Runnable，而最终的执行方法，start(), 调用了native方法 start0()启动了线程，执行了
 * run()方法中的代码
 */
public class CreateThread {
    /**
     * 使用继成Thread类创建线程
     */
    @Test
    public void test1(){
        MyThread myThread = new MyThread();
        myThread.start();
    }

    /**
     * 使用runnable创建线程
     */
    @Test
    public void test2(){
        Runnable runnable = () -> System.out.println("this is Runnable thread");
        Thread thread = new Thread(runnable);
        thread.start();
    }
}

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("this is MyThread extends Thread");
    }
}
